import { defineStore } from 'pinia';
import http from '@/utils/http/http.js';
// 定义商品状态管理
export const useProductStore = defineStore('product', {
  state: () => ({
    // 所有商品列表 - 添加示例数据
    products: [
      // {
      //   "id": 1,
      //   "name": "康师傅红烧牛肉面",
      //   "description": "方便面，袋装，90g",
      //   "price": 4.5,
      //   "categoryId": 4,
      //   "totalStock": 120,
      //   "safeStock": 20,
      //   "status": 1,
      //   "mainImageUrl": "/images/product/noodle.jpg",
      //   "merchantId": 2,
      //   "createTime": "2025-05-08T09:27:58.000+00:00",
      //   "updateTime": "2025-05-08T09:27:58.000+00:00"
      // }
      // {
      //   "id": 6,
      //   "name": "舒肤佳香皂",
      //   "description": "清香型，100g*3块装",
      //   "price": 15.9,
      //   "categoryId": 6,
      //   "totalStock": 60,
      //   "safeStock": 15,
      //   "status": 1,
      //   "mainImageUrl": "/images/product/soap.jpg",
      //   "merchantId": 3,
      //   "createTime": "2025-05-08T09:27:58.000+00:00",
      //   "updateTime": "2025-05-08T09:27:58.000+00:00"
      // }
    ],
    // 当前选中的商品
    currentProduct: null,
  }),
  
  actions: {
    // 设置商品列表
    setProducts(products) {
      // 如果传入的是新数据，则替换现有数据
      // 否则保留示例数据
      if (products && products.length > 0) {
        this.products = products;
      }
    },
    // 在 actions 中添加以下方法
    // 获取商品列表
    async fetchProducts() {
      try {
        const response = await http.get('/api/products/all');
    
        if (response.code === 200 && response.data) {
          this.products = response.data;
          return this.products;
        } else {
          console.error('获取商品列表失败:', response.message);
          return [];
        }
      } catch (error) {
        console.error('获取商品列表请求失败:', error);
        return [];
      }
    },
    // 设置当前选中的商品
    setCurrentProduct(product) {
      this.currentProduct = product;
    },
    
    // 根据ID获取商品
    getProductById(id) {
      // 确保id是数字类型进行比较
      const numId = parseInt(id);
      const product = this.products.find(item => item.id === numId);
      
      if (product) {
        console.log('找到商品:', product);
        return product;
      } else {
        console.error('未找到ID为', numId, '的商品，当前商品列表:', this.products);
        return null;
      }
    },
    
    // 添加调试方法，打印当前状态
    debugState() {
      console.log('当前商品列表:', this.products);
      console.log('当前选中商品:', this.currentProduct);
    }
  }
});